package com.suep.system.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;

//由于前后端分离，全局配置跨域请求
@Configuration
public class CorsConfig {
//    @Override
//    public void addCorsMappings(CorsRegistry registry) {
//        registry.addMapping("/**") // 允许跨域访问的路径
//                .allowedOriginPatterns("http://localhost:9999")
//                .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS") // 允许请求方法
//                .allowCredentials(true) // 是否允许携带凭证
//                .maxAge(3600); // 预检请求的有效期，单位为秒
//    }

    @Bean
    public CorsFilter corsFilter() {
        CorsConfiguration config = new CorsConfiguration();
        // 允许的源，这里配置为前端的地址
        config.addAllowedOriginPattern("http://localhost:9999");
        config.addAllowedOriginPattern("http://localhost:3000");
        // 允许的请求方法
        config.addAllowedMethod("*");
        // 允许的请求头
        config.addAllowedHeader("*");
        // 是否允许携带凭证
        config.setAllowCredentials(true);
        // 预检请求的有效期，单位为秒
        config.setMaxAge(3600L);

        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", config);

        return new CorsFilter(source);
    }
}
